package com.h3c.nem.service;


import com.github.pagehelper.PageInfo;
import com.h3c.nem.dto.PageQueryDTO;
import com.h3c.nem.dto.mapstruct.NewWorkerDTO;
import com.h3c.nem.entity.SdAllWorker;
import com.h3c.nem.entity.TbCareInfo;
import com.h3c.nem.enums.CareInfoType;

import java.text.ParseException;
import java.util.List;

/**
 * 新员工关怀详情信息
 *
 * @author z22968
 * @date 2022/6/9 11:17
 */
public interface ITbCareInfoService {
    /**
     * 获取并添加新员工通知列表
     *
     * @param
     * @return void
     * @author z22968
     * @date 2022-06-13 10:34
     */
    public void getAllNoticeList();

    /**
     * 获取并添加绩效优秀新员工通知列表
     *
     * @param
     * @return void
     * @author z22968
     * @date 2022-06-13 11:50
     */
    void getExcellentNoticeList();

    /**
     * 根据工号获取需要通知的人
     *
     * @param worker 新员工
     * @return java.util.List<com.h3c.nem.entity.TbCareInfo>
     * @author z22968
     * @date 2022-06-08 15:23
     */
    List<TbCareInfo> getNoticeList(NewWorkerDTO worker);

    /**
     * 获取接受通知的用户列表
     *
     * @param
     * @return java.util.List<com.h3c.nem.entity.SdAllWorker>
     * @author z22968
     * @date 2022-06-15 09:46
     */
    List<SdAllWorker> getReceiveNoticeList() throws Exception;

    /**
     * 获取绩效优秀通知中 接受通知的领导
     *
     * @param
     * @return java.util.List<com.h3c.nem.entity.SdAllWorker>
     * @author z22968
     * @date 2022-06-15 10:44
     */
    List<SdAllWorker> getReceiveNoticeLeaderList();

    /**
     * 根据工号和通知类型更新实际发送时间
     *
     * @param workerId    工号
     * @param isExcellent 是否绩效优秀
     * @return void
     * @author z22968
     * @date 2022-06-20 16:07
     */
    void updateActualNoticeTimeByOldWorkId(String workerId, Boolean isExcellent);

    /**
     * 定时推送鼓励消息（非绩效优秀）
     *
     * @param
     * @return void
     * @author z22968
     * @date 2022-06-20 16:41
     */
    void noticeWorkerJob();

    /**
     * 定时推送鼓励消息（绩效优秀）
     *
     * @param
     * @return void
     * @author z22968
     * @date 2022-06-20 16:41
     */
    void noticeLeaderJob();


}
